// 用户认证工具函数

// 获取当前登录用户信息
export function getCurrentUser() {
  try {
    // 从localStorage获取用户信息
    const userStr = localStorage.getItem('currentUser');
    if (userStr) {
      return JSON.parse(userStr);
    }
    
    // 模拟用户数据，在实际应用中应该从认证系统获取
    // 这里返回一个包含年龄信息的模拟用户
    return getMockUser();
  } catch (error) {
    console.error('获取用户信息失败:', error);
    return null;
  }
}

// 设置当前用户信息
export function setCurrentUser(user) {
  try {
    localStorage.setItem('currentUser', JSON.stringify(user));
    return true;
  } catch (error) {
    console.error('设置用户信息失败:', error);
    return false;
  }
}

// 清除用户信息（登出）
export function clearCurrentUser() {
  try {
    localStorage.removeItem('currentUser');
    return true;
  } catch (error) {
    console.error('清除用户信息失败:', error);
    return false;
  }
}

// 检查用户是否已登录
export function isLoggedIn() {
  return !!getCurrentUser();
}

// 模拟用户数据生成
function getMockUser() {
  // 生成随机年龄（13-65岁之间）
  const randomAge = Math.floor(Math.random() * 53) + 13;
  
  // 根据年龄生成用户兴趣标签
  const interests = generateInterestsByAge(randomAge);
  
  return {
    id: 'user_' + Date.now(),
    username: '用户' + Math.floor(Math.random() * 1000),
    email: `user${Math.floor(Math.random() * 1000)}@example.com`,
    age: randomAge,
    avatar: `https://placehold.co/100x100/00a1d6/FFFFFF?text=User`,
    interests: interests,
    registrationDate: new Date(Date.now() - Math.random() * 365 * 24 * 60 * 60 * 1000).toISOString(),
    lastLoginDate: new Date().toISOString(),
    isVip: Math.random() > 0.7, // 30%概率是VIP用户
    preferences: {
      theme: ['light', 'dark'][Math.floor(Math.random() * 2)],
      notifications: true,
      autoPlay: false
    }
  };
}

// 根据年龄生成兴趣标签
function generateInterestsByAge(age) {
  const allInterests = {
    young: ['动漫', '游戏', '音乐', '舞蹈', '科技', '潮流', '短视频', '社交'],
    middle: ['职场', '教育', '生活', '健康', '科技', '旅行', '美食', '投资'],
    old: ['健康养生', '历史', '文化', '家庭', '旅游', '美食', '娱乐', '手工艺']
  };
  
  let baseInterests;
  if (age < 25) {
    baseInterests = allInterests.young;
  } else if (age < 45) {
    baseInterests = allInterests.middle;
  } else {
    baseInterests = allInterests.old;
  }
  
  // 随机选择3-5个兴趣
  const interestCount = Math.floor(Math.random() * 3) + 3;
  const selectedInterests = [];
  const shuffled = [...baseInterests].sort(() => 0.5 - Math.random());
  
  for (let i = 0; i < interestCount; i++) {
    if (shuffled[i]) {
      selectedInterests.push(shuffled[i]);
    }
  }
  
  return selectedInterests;
}

// 获取用户年龄段
export function getUserAgeGroup(age) {
  if (age < 18) return 'teenager';
  if (age < 25) return 'z_gen';
  if (age < 36) return 'youth';
  if (age < 56) return 'middle_age';
  return 'senior';
}

// 更新用户兴趣
export function updateUserInterests(newInterests) {
  const user = getCurrentUser();
  if (user) {
    user.interests = newInterests;
    return setCurrentUser(user);
  }
  return false;
}

// 更新用户年龄
export function updateUserAge(age) {
  const user = getCurrentUser();
  if (user) {
    user.age = age;
    // 更新年龄后可能需要重新生成兴趣
    if (!user.interests || user.interests.length === 0) {
      user.interests = generateInterestsByAge(age);
    }
    return setCurrentUser(user);
  }
  return false;
}
